home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / dev / gui / gui4cli.lha / Gui4Cli / Docs / Changes_old < prev    next >
Encoding:
Text File  |  1999-10-26  |  22.3 KB  |  574 lines

  1.  
  2.   ================================================================
  3.   === VERSION 3.7 CHANGES ------------------------------------->>>
  4.   ================================================================
  5.  
  6.  New Events :
  7.  
  8. - xHOTKEY  KeyCombination  ON|OFF
  9.   Gui4Cli now installs a Commodities Exchange Broker through which
  10.   you can define various HotKeys. The KeyCombination can be something
  11.   like "rawkey lshift f2" (see guide) and it "happens" when the user
  12.   inputs this combination from whereever (i.e. even if a non - Gui4Cli
  13.   window is the active one). You can give it a GADID and SETGAD it 
  14.   ON|OFF, and you can also UPDATE it, giving a new KeyCombination.
  15.  
  16. - xNOTIFY  File|Directory  ON|OFF
  17.   Will set notification on a file or directory and will "happen"
  18.   every time the given file/dir changes in some way (i.e. if it
  19.   is written to or deleted or whatever). You can give it a GADID
  20.   and SETGAD it ON|OFF and you can also UPDATE it, giving a new
  21.   file/dir name.
  22.  
  23.  New Commands :
  24.  
  25. - SPEAK TextString
  26.   Will use the "translator.library" (LIBS:) and the "narrator.device" 
  27.   (DEVS:), both of which you must have, to speak the given text. The
  28.   speaking is done synchronously - i.e. Gui4Cli will stop and wait 
  29.   for the speaking to finish before proceeding.
  30.  
  31. - SET SPEAK Rate/Pitch/Sex/Mode/Volume/Freq
  32.   Will change the voice used in speaking to the new values you give.
  33.   See guide for their meaning. The default is: 150/110/0/0/64/22200
  34.  
  35. - SETSCREENTITLE GuiName Text
  36.   Will set the text that will be shown in the screen's title bar, 
  37.   whenever the given Gui's window is the active one.
  38.  
  39. - FLASH - Will flash the screen - use it to indicate an error.
  40.  
  41. - MOVESCREEN GuiName/#ScreenName X Y
  42.   Will move the screen that GuiName is (or will) open on to position
  43.   X, Y. You can also give the ScreenName directly, by putting # in front.
  44.  
  45. - WORKBENCH OPEN|CLOSE - will open or close the Workbench
  46.  
  47. - SETATTR GuiName/GadID ATRIBUTE VALUE - will set the attributes of the 
  48.   given gadget. Does the same as the ATTR gadget modifier, but dynamically.
  49.   Ex: SetAttr Mygui.gc/1 LVLINEDIST 3 - note that you would have to
  50.   redraw the listview for the change to be visible. 
  51.   (This command was supposedly available in last version, but was not)
  52.  
  53.  Sound support :
  54.  
  55.   Standard mono IFF Samples, up to 64k in length, can now be loaded and 
  56.   used as sound effects or reminders. The commands that handle them, 
  57.   are similar to the image handling commands :
  58.  
  59. - LOADSOUND FileName Alias  - will load the sample and name it "Alias"
  60. - FREESOUND Alias           - will free the above sample
  61. - PLAYSOUND Alias           - will play the sound once
  62.  
  63. - SETSOUND  Alias VOLUME/SPEED value 
  64.   Will set the VOLUME (1-64) or the SPEED (124-1000) ie the pitch.
  65.  
  66.   Sounds can be used as effects on all types of gadgets, and on other
  67.   events like window open/close, RMB and xOnKey. There are 2 ways you 
  68.   can do this.
  69.  
  70.   1.- You can define the sound effects globally, and these will be
  71.       used in all guis:
  72.  
  73.       > SET SndOpen|SndClose|SndGad|SndRMB|SndKey Alias
  74.       
  75.       You can set all these from the Gui4Cli.gc gui (called from
  76.       the main requester in the WB tools menu)
  77.  
  78.   2.- Or, you can define a different sound for every gadget, or key
  79.       or window etc, using the Attribute system, with:
  80.  
  81.       > SETATTR mygui.gc/1 SOUND mysound <or> ATTR SOUND mysound
  82.  
  83.   The sound will be played every time the event is triggered.
  84.   An attribute, if defined, will take precedence over a global sound.
  85.   Note that with ATTR, sounds can also be attached to xONOPEN, xONCLOSE, 
  86.   xRMB and xONKEY events.
  87.  
  88.   TextIn hook :
  89.  
  90.   Added a TextIn gadget hook, providing the following :
  91.  
  92.   xTextIn Gadget Attributes (for ATTR & SETATTR):
  93.  
  94. - TITYPE  INT/FLOAT/HEX/DATE/UPPER/LOWER/STRING
  95.   Will let you define what kind of data can be entered in the 
  96.   gadget. <Attr TiType FLOAT> for example will only let you
  97.   enter numbers and '.' into it. DATE will allow numbers and /.- 
  98.   STRING allows anything. (*** still needs work on formating ***)
  99.  
  100. - TITRANS ON|OFF
  101.   The text in the textin gadget will, by default, be translated
  102.   as soon as you've finished entering data. Set this attribute to
  103.   OFF to stop translation.
  104.  
  105.   xTextIn Internal variables :
  106.  
  107.   $$TI.POS    - the cursor position in the current textin gadget
  108.   $$TI.LENGTH - total length of string in the gadget
  109.   $$TI.REC    - the string in the gadget
  110.   $$TI.ID     - the ID of the gadget
  111.   $$TI.GUI    - the name of the gui it's in
  112.  
  113.   Internal variables :
  114.  
  115. - $$LV.VAR internal variable - will give you the (full path of) the 
  116.   name of the listview variable. eg: mygui.gc/myvar
  117.  
  118. - $$RAND.xxx - will supply you with a random number from 0 to "xxx".
  119.   eg: $$Rand.100 - will give you a random number from 0 to 100.
  120.   Note that if you want a range of 1-100, you would have to do
  121.   x = $($$rand.99 + 1) - The function used is SAS's drand48() which 
  122.   generates the number using a linear congruential algorithm and 48bit 
  123.   arithmetic... (swear to God :)
  124.  
  125. - $$MEM.CHIP   - the remaining chip memory
  126. - $$MEM.FAST   - the remaining fast memory
  127. - $$MEM.ALL    - all the remaining memory
  128. - $$MEM.CLARGE - largest chip memory block (slow)
  129. - $$MEM.FLARGE - largest fast mem block (slow)
  130.  
  131. - $$G4C.TABS   - current tab size
  132. - $$G4C.GRID   - current grid size
  133.  
  134.   Attributes (ATTR & SETATTR) :
  135.  
  136. - LVFILTER Pattern
  137.   Will filter the files in a dir listview according to the 
  138.   pattern you give - examp - make a LV hide all the icons:
  139.   - SetAttr MyGui.gc/1 LVFILTER "~(#?.info)"
  140.   Must <LVDir refresh> for the change to actually take place.
  141.  
  142.   Improvements :
  143.  
  144. - MakeScreen will now also understand the size argument as :
  145.   Width/Height/Depth/ViewMode - viewmode is optional
  146.   > MakeScreen MyScreen 640/512/4/0x21004 'my screen'
  147.  
  148. - You can now give -10 as Top in a WinBig command and the window
  149.   will be positioned just under the screen title bar.
  150.  
  151. - New operator:  !! (double exclamation) means not equal, but unlike
  152.   the != operator, it's case insensitive - i.e. <if a !! A> is FALSE
  153.  
  154. - Made a big internal change in the way commands are recognized
  155.   and structured. As a result, Gui4Cli now parses files a little
  156.   faster (we're talking microseconds here.. if you can tell the
  157.   difference you're probably an alien). More importantly it allows 
  158.   me to add and manage commands easier.
  159.  
  160. - The second part of an internal variable will now be translated
  161.   if it's a variable - (eg: $$RAND.$x) - $x must be a simple 
  162.   variable - no paths, [], or var-in-var allowed.
  163.  
  164.  Changes to Guis :
  165.  
  166. - Changed the Gui4Cli.gc gui. The preferences now include sound
  167.   effects. Also, now they can be saved in file guis:Gui4Cli.prefs 
  168.   which is a file that Gui4Cli will look for the 1st time it starts
  169.   up and run it, if it finds it.
  170.  
  171.   Bugs & Fixes :
  172.  
  173. - Fixed nasty bug in Set Buffers NewSize.
  174.  
  175. - Some programs like DPaint and Scala ignored arexx messages sent
  176.   from Gui4Cli with the SendRexx command. That has now been fixed. 
  177.   They wanted the ln_Name field of the msg to be set to "REXX"
  178.  
  179. - Buffers for the SETWINTITLE and SETSCREENTITLE commands are
  180.   now allocated dynamically, so there no need anymore to ensure
  181.   that the string buffer you give is large enough to fit the
  182.   translated version of the string. You can now do :
  183.   > SetWinTitle mygui.gc '$$lv.dir'
  184.  
  185. - SetWinTitle will now recognise the #this keyword
  186.  
  187. - Changed tab handling in listviews. Before, tabs were expanded
  188.   when the file was loaded. This meant that tabs became spaces
  189.   if you thereafter saved the file again with LVSave. Now, the
  190.   file is loaded as is, and tab expansion is done in the Listview
  191.   hook, at rendering time. It's better this way..
  192.  
  193. - Changed the LVFormat Extension (used in the CedBar.gc gui)
  194.   to account for the above change.
  195.  
  196. - MakeScreen - background pics now have correct colors.
  197.  
  198. - SetColor will disregard colors which are out of range.
  199.  
  200. - Fixed WinOnMouse mouse position. It didn't account for different
  201.   screen positions.
  202.  
  203.   ================================================================
  204.   === VERSION 3.6 CHANGES ------------------------------------->>>
  205.   ================================================================
  206.  
  207.   Events & Commands :
  208.  
  209. - Event : xTIMER TIME|SINGLE|REPEAT TIME|INTERVAL ON|OFF
  210.   will provide you with accurate timing events - see the guide
  211.   for details.
  212.  
  213. - ClipBoard support for text clips is now provided for listviews.
  214.   o When you load a file called Clips:0 (or any number 0-255) then
  215.     the lv will load whatever is in that clipboard unit. 
  216.   o When you save a file whose file path starts with "CLIPS:" i.e.
  217.     something like Clips:3, the lv will be saved to the given
  218.     clipboard unit in correct iff format.
  219.   o Moreover listviews will load any IFF-FTXT file correctly.
  220.  
  221. - SHAREMENU GuiName - (Global command)
  222.   Will share the menus of the named gui file. When the menu is 
  223.   selected it will be as if the other gui's (the one which has the 
  224.   actual menu events in it) menu was selected and all commands 
  225.   attached to it will be executed.
  226.  
  227. - Menus will now accept many BARLABEL items.
  228.  
  229. - Now you can give '#This' as the gui file name, and it will
  230.   mean the current file - i.e. GuiOpen #This - will mean : open
  231.   the file that this command appears in. This gives you more 
  232.   independent code.
  233.  
  234. - CONTROL-R will now execute all xOnClose/Quit/Load commands
  235.   it encounters while Re-Loading a file. Note that your gui
  236.   will not re-open if there is no guiopen command in the 
  237.   xOnLoad event.
  238.  
  239. - RESINFO FontHeight ScreenWidth ScreenHeight - is a new Global 
  240.   command with which you can give some info to Gui4Cli to enable
  241.   it to resize the gui correctly on other people's systems.
  242.  
  243. - Worked around gadtools limitation by which when you move a 
  244.   listview with the scroller and after try to continue with the 
  245.   arrow keys, it snaps back to the last record you had clicked 
  246.   on - now Gui4Cli will guess the line and scroll correctly.
  247.   
  248.   ARexx :
  249.  
  250. - There is now a global variable named *REXXVAR which has
  251.   special meaning. You use it as you would any global variable
  252.   but when someone sends a rexx command to Gui4Cli from a
  253.   rexx program which has OPTIONS RESULTS declared, then the
  254.   contents of this variable will be returned and will be
  255.   available from withing arexx as variable RESULT. So...
  256.      >> SetVar  "*REXXVAR"  "'$mygui.gc/myvar'"
  257.   ..would put whatever is in $mygui.gc/myvar into RESULT.
  258.  
  259.   Note the use of the quotes: one set for arexx, another for
  260.   Gui4Cli (since $mygui.gc/myvar could be a string of words).
  261.  
  262. - If you set OPTIONS RESULTS you will now cause the Gui4Cli 
  263.   command you have sent from an ARexx program to be executed
  264.   synchronously. This has the advantage of returning a result.
  265.   Without OPTIONS RESULTS the execution is asynchronous.
  266.  
  267. - Also fixed some Gui4Cli<->ARexx communication errors..
  268.   You can now run a rexx program with a public port and have
  269.   it communicate back and forth with Gui4Cli without the
  270.   deadlocks that used to occur.
  271.  
  272.   C Programmers Interface :
  273.  
  274. - Have provided an include file with Gui4Cli internal
  275.   structures and set up a mechanism whereby you can communicate
  276.   with Gui4Cli, and in effect provide extensions to Gui4Cli's 
  277.   command set, as follows :
  278.  
  279.   - From outside programs -to-> Gui4Cli
  280.     a) Send message and LOCK Gui4Cli, look at it's internal
  281.        structures, manipulate variables, listviews etc, and then
  282.        unlock it again, and let it continue, or
  283.     b) Send command lines for it to execute (like rexx msgs)
  284.  
  285.   - From Gui4Cli -to-> outside programs
  286.     Use the new command :
  287.     > CALL PortName Command Arg1 Arg2... Arg6
  288.     to send special Gui4Cli messages containing commands
  289.     to outside programs, who should then process the commands
  290.     using, if they want, any of Gui4Cli's internal structures,
  291.     and give control back to Gui4Cli (maybe returning something)
  292.  
  293.   See the examples in the "Guis:Ext" directory for more info.
  294.  
  295.   IMPORTANT NOTE : 
  296.   - Changes have been made to the structures of the BETA version 
  297.     that was on my page !!! - Recompile or crash.
  298.  
  299.  Extensions :
  300.  
  301.   Two extensions can already be found in guis:ext :
  302.  
  303. - GCSound - a 8SVX sample player (mono only for now) with the
  304.   ability to load & play many samples simuiltaneously, change
  305.   speed & volume while playing etc - Full gui is available in
  306.   the same directory.
  307.  
  308. - LVFormat - various functions which act on the current listview
  309.   like : wordwrap, indent, justify etc
  310.  
  311.  New internal variables :
  312.  
  313.   $$SYS.AW  - Active Window Title (may or may not be a Gui4Cli window)
  314.   $$SYS.AS  - Active Screen title
  315.   $$SYS.ASN - Active Screen Name (if it's public)
  316.   $$SYS.FS  - Frontmost Screen Title 
  317.   $$SYS.FSN - Frontmost Screen Name (if it's public)
  318.   If you need other data (width etc) you can SetScreen the current 
  319.   gui to the name you want (no need to open it) and read the 
  320.   $$SRC.xx vars.
  321.  
  322.   $$SYS.TIME - the current time (ex: 10:30:25 - hh:mm:ss)
  323.   $$SYS.TS   - the seconds part of the above time (i.e. 25)
  324.   $$SYS.TM   - the minutes part (i.e. 30)
  325.   $$SYS.TH   - the Hours part (i.e. 10)
  326.  
  327.   $$SYS.DATE - the date (see below for formats)
  328.   - following available *only* for dd-mm-yy (CDN) format:
  329.   $$SYS.DD   - the Day part of the above date
  330.   $$SYS.DM   - the month part
  331.   $$SYS.DY   - the year part
  332.  
  333.   $$SYS.DAY  - the day of the week (i.e. Monday)
  334.  
  335.   By default the date format is DD-MM-YY (15-07-98)
  336.   You can change this with the SET command :
  337.   > SET DATEFORMAT number - where number can be:
  338.   0 = DOS format -> dd-mmm-yy  (15-Apr-98)
  339.   1 = INT format -> yy-mm-dd
  340.   2 = USA format -> mm-dd-yy
  341.   3 = CDN format -> dd-mm-yy (default)
  342.   NOTE : the $$SYS.DD/DM/DY vars aply *only* to CDN format!
  343.  
  344.   Bug fixes :
  345.  
  346. - Fixed 10 enforcer hits, only 1 of which was of any real danger,
  347.   and you can thank Giuseppe Chillemi for pointing them out to me.
  348.   Gui4Cli is now clean with Enforcer (until the next bug..)
  349.   Also fixed an enforcer hit in c:gui.
  350.  
  351. - Not actually a bug.. Now RUN will also receive a console which
  352.   will be opened every time something is RUN.
  353.  
  354. - Got the SAS 6.58 patch and recompiled, optimized and caught a
  355.   few other small bugs too..
  356.  
  357. - LVSearch will now stop at every string found - if there are many
  358.   instances of a string in a lv line. The $$search.pos etc internal 
  359.   vars will show the position & length correctly. ** fixed again **
  360.   
  361. - Fixed ReadVar trash if it read less than you asked for.
  362.  
  363. - xICON can now be setgad HIDE|SHOW (had forgoten to put it..)
  364.  
  365. - Fixed some GuiEditing graphics errors. 
  366. - Also xICON new positions will now be saved (again forgoten)
  367.  
  368. - SET DEBUGSTEP ON|OFF, will cause an easy requester to appear 
  369.   before every command is executed (in debug mode) so you can 
  370.   control execution (I used this for catching the enforcer bugs)
  371.  
  372. - Setwintitle will now work even if window is not open.
  373.  
  374. - Fixed a bug where messages returned from launches & pipes got
  375.   confused with messages replied from AREXX and could lock Gui4Cli.
  376.  
  377. - makedir will no long be confused if there is a / at the end
  378.  
  379. - Fixed bug reported by Chris Ralph, where LVINSERT increased
  380.   the total record count by 2 instead of 1
  381.  
  382.   ================================================================
  383.   === VERSION 3.5 CHANGES ------------------------------------->>>
  384.   ================================================================
  385.  
  386.   Mathematical Abilities :
  387.  
  388. - Added mathematical expression evaluation and floating point numbers.
  389.   You can now enclose an expression in brackets with a $ in front
  390.   and Gui4Cli will evaluate it. Variables can be included :
  391.      var = $(45*7.45+($OtherVar /25))
  392.      say 'The answer is: $($var *2)\n'
  393.   Moreover, inside the brackets you can use the math functions :
  394.   abs(), sin(), cos(), tan(), log(), ln(), exp(), 'pi', etc
  395.  
  396.   - BECAREFULL with variables..
  397.   You must leave a space or ')' or '(' or '\' after the var 
  398.   name otherwise Gui4Cli will not read the var name correctly.
  399.      say '$($var*2)\n'  <- is incorrect (the var name is "var*2")
  400.   Read more in "Important Topics"
  401.  
  402.   Database ListViews :
  403.  
  404. - ListViews can now have fields (or columns) if you load a special
  405.   type of DataBase file - i.e. a file saved in a special format.
  406.   This introduces new notions like fields (which are something like
  407.   variables) - Read about it in the Guide, in "Important Topics".
  408.  
  409. - LVSort will now also sort by field : LVSort %FieldName
  410.   All sorting is ascending i.e. from small to large
  411.  
  412.   DataBase ListView Commands:
  413.  
  414. - DBSUM ALL|SELECTED|UNSELECTED %FieldName ResVar
  415.   Will add all specified fields in a DB listview and place the 
  416.   result into ResVar.
  417.  
  418. - RECSORT %FieldName
  419.   Will sort the current record into a DB listview according to
  420.   the given field. To be used when you add or edit a record, instead
  421.   of having to sort the whole lv from scratch.
  422.  
  423.   New ListView Commands:
  424.  
  425. - LVClip CUT|COPY lines|-1 ADD|PASTE|INSERT gui ID
  426.   Will CUT or COPY the amount of lines specified (or all if -1) from 
  427.   the current LV (starting at the current record) and ADD or PASTE or
  428.   INSERT them (after the current record) into the destination LV given.
  429.  
  430. - LVSwitch Gui ID  -  Will switch the data of the current listview 
  431.   with the one specified. Everything else (IDs, gadget attributes,
  432.   lvmode etc) will remain the same.
  433.  
  434. - Added the following keywords to LVMULTI:
  435.   SHOW - will refresh the LV
  436.   ALL/NONE - select/deselect *all* lv items 
  437.  
  438. - LVMOVE 0 - will now refresh the LV display.
  439.  
  440. - If you give the escape code for the "concealed mode" in a listview,
  441.   the text will now be rendered in 3D (since I don't know what the hell 
  442.   concealed stands for and multiview ignores it anyway..)
  443.  
  444.   BTW : Its  <ESC>[8m -or- <ESC>[32;8m (for white on black shadow)
  445.  
  446.   Attributes to control gadgets :
  447.  
  448. - ATTR AtributeName Value - (a gadget modifier)
  449. - SETATTR Gui ID AtributeName Value - (a command)
  450.   can now be used to set various atributes of various gadgets, like
  451.   setting the field color & style in DataBase listviews, the 
  452.   distance between lv lines, etc..
  453.  
  454.   Variables :
  455.  
  456. - New (the last - I promise :) LOCAL variables which are declared
  457.   within the event they belong to, with the gadget modifier :
  458.      LOCALVAR  var1/var2/var3 etc..
  459.   These are valid *only* inside the event in which they are declared.
  460.  
  461. - Now you can use the new - VarName[start][length] - notation on
  462.   all types of variables (env: vars, LV fields, internal vars, normal 
  463.   and local vars).
  464.  
  465.   File requesters :
  466.  
  467. - You can now provide a default file together with the DirName 
  468.   (last argument) and it will be shown in the file gadget.
  469.  
  470. - Put a '#' char in front of the DirName you give, to force a
  471.   requester to open at this same dir every time.
  472.  
  473. - Requesters will no longer be confused by quoted strings.
  474.  
  475.   Various improvements :
  476.  
  477. - Mouse positions for WinOnMouse are now taken from IntuitionBase.
  478.   This allows you to pop-up guis at the mouse, when the command to
  479.   open the gui is sent from an other program.
  480.  
  481. - You can give <Guiscreen #ScreenName FRONT|BACK> now, using the 
  482.   actual ScreenName if you want, by putting a # character in front.
  483.  
  484. - You can now declare an xIcon as "" meaning that you don't want to
  485.   show it yet, or changeicon to "" making it disappear.
  486.  
  487. - Extract now has 2 new keywords :
  488.   HEX - will convert the number given into Hex notation
  489.   OCT - will convert it into octal notation
  490.  
  491. - DEBUG mode will no longer print out the GET:/SET: statements.
  492.   You can SET DEBUGVARS ON|OFF, if you prefer the old method.
  493.  
  494.   Bug fixes :
  495.  
  496. - If you try to act on a file whose dir has been changed, the Dir 
  497.   Listviews will now refresh the dir, check if the file still
  498.   exists and if so, they will go ahead and act on it. They used
  499.   to just refresh and stop. It's more intuitive like this.
  500.  
  501. - LVSave will now set $$Retcode if it fails: 
  502.   Can't open file = 10, nothing to save = 5.
  503.  
  504. - Fixed $$lv.tot which showed 1 record when in "No data" mode.
  505.  
  506. - LVs now gets updated if OFF, but not updated if HIDEn (even if no
  507.   redrawn given yet). 
  508.  
  509.   NOTE : It is *much* faster to HIDE an lv and act on it (with commands
  510.   like lvadd, lvput etc) and then SHOW it again, than to have the LV
  511.   updated continuously while actions are going on. When you show it 
  512.   again, you must "nudge" it into redrawing itself - with LVMULTI SHOW
  513.   or LVMOVE 0
  514.  
  515. - Fixed small bug in guirename (it was case sensitive)
  516.  
  517.  
  518.   ================================================================
  519.   === VERSION 3.4 CHANGES ------------------------------------->>>
  520.   ================================================================
  521.  
  522.   NEW COMMANDS :
  523.  
  524. - TEXTFILE FileName 
  525.   - will mark the start of a text file. Lines of text will be read in 
  526.   and writen to "FileName". Use "###" (3 hash characters) to mark the 
  527.   end of the text block. They MUST appear at the begining of a line. 
  528.   A TEXTFILE can appear anywhere in a gui.
  529.   Good for embedding arexx scripts or data for listviews etc..
  530.  
  531. - SEARCHVAR Variable String CI|CS FIRST|NEXT
  532.   Search a Variable for a string - FIRST occurrence, NEXT occur.. etc
  533.   Results can be read via internal variables:
  534.   - $$SEARCH.POS = contains the number of the character where the string
  535.       found begins (0 is the 1st character) - or "" if nothing found.
  536.   - $$SEARCH.LENGTH = the total length of the variable.
  537.  
  538. - REPVAR Variable OldString NewString CI|CS
  539.   Will replace all occurances of OldString in Variable with NewString
  540.   CS means case sensitive, CI not.
  541.  
  542. - LVREP OldString NewString CI|CS
  543.   Do the replacement on ALL the records of the current listview 
  544.  
  545. - You can now use ++ and -- on a variable, C style - i.e. ++var is the 
  546.   same as saying: counter var inc 1. Same for --var.
  547.  
  548. - IFEXISTS and WAIT now have a negative form, by puting a ~ character
  549.   in front of the name of the item you're looking for.
  550.   - IfExists PORT ~MyPort
  551.   will be TRUE if port "MyPort" does *not* exist.
  552.  
  553. - You can now hit Control-D in any window to start/stop debug.
  554.  
  555.   BUG FIXES :
  556.  
  557. - Fixed $$REXXRET which stoped working in V3.3 (a stupid error..)
  558.  
  559. - Inverted all the GadKey KeyBoard shortcuts : now a normal keypress 
  560.   increases a gadget whereas a shifted one decreases it (used to be oposite)
  561.  
  562. - Enabled binary chars in env variables, so that they can contain
  563.   multiple lines. If last line has a trailing \n it's removed.
  564.  
  565.  
  566.    ================================================================
  567.   History of previous versions donated to the National Museum of Modern
  568.   Art. They didn't want it either, so I printed it out, burned it and
  569.   danced Kartsilama on the ashes..
  570.   
  571.  
  572.  
  573.